Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

493
Views
Proper relative imports: "Unable to import module"

I have a project structured like this:

.
└── myapp
    ├── app.py
    ├── models
    │   ├── hello.py
    │   └── world.py
    └── requirements.txt

I have two models, hello and world. Both models are used from app.py where I import them like this:

from models.hello import Hello
from models.world import World

But world also needs to use hello. I tried this in world.py:

from models.hello import Hello

The above technically works when I run the app, but VSCode's Python extension gives me the following error:

E0401:Unable to import 'models.hello'.

What is the proper way of importing a submodule from the same directory? How do I avoid this error in VSCode?

over 4 years ago · Santiago Trujillo
3 answers
Answer question

0

The error you are receiving is one that's reported by a python linter named pylint. So the problem isn't really specific to the vscode extension.

There are two solutions:

  1. Please try adding an .env file in your project directory with the vape PYTHONPATH=./myapp, this will tell pylint where to find your modules

  2. Or just open the folder myapp in vscode directly instead of opening the parent directory in vscode.

over 4 years ago · Santiago Trujillo Report

0

The error is coming from pylint. You need to add this line into settings.json file (VS Code):

"python.linting.pylintArgs": ["--init-hook",
        "import sys; sys.path.append('<absolute path to myapp directory>')"],
over 4 years ago · Santiago Trujillo Report

0

Since hello.py and world.py are in the same folder (aka package), you should import the Hello class in world.py as follow:

from .hello import Hello

As described in this thread: What does a . in an import statement in Python mean?

The . is here to indicate the import from the current package.

over 4 years ago · Santiago Trujillo Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!